package com.xueyi.system.packingManage.domain.po;

import java.math.BigDecimal;
import java.time.LocalDateTime;

import cn.hutool.json.JSONArray;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xueyi.common.core.web.tenant.base.TBaseEntity;
import com.xueyi.system.packingManage.domain.dto.PackingManageDto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.xueyi.common.core.annotation.Excel;

/**
 * 包装管理 持久化对象
 *
 * @author yanhe
 */
@TableName(value = "base_packing_manage", excludeProperty = {"sort"},autoResultMap = true)
public class PackingManagePo extends TBaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 包装编号
     */
    @Excel(name = "包装编号")
    @TableField("code")
    private String code;

    /**
     * 基地id
     */
    @Excel(name = "基地id")
    @TableField("area_id")
    private Long areaId;

    /**
     * 批次id
     */
    @Excel(name = "批次id")
    @TableField("batch_id")
    private Long batchId;

    /**
     * 基地
     */
    @Excel(name = "基地")
    @TableField("area_name")
    private String areaName;

    /**
     * 批次名称
     */
    @Excel(name = "批次名称")
    @TableField("batch_name")
    private String batchName;

    /**
     * 产品id
     */
    @Excel(name = "产品id")
    @TableField("production_id")
    private Long productionId;

    /**
     * 产品名称
     */
    @Excel(name = "产品名称")
    @TableField("production_name")
    private String productionName;

    /**
     * 负责人
     */
    @Excel(name = "负责人id")
    @TableField("principal_user_id")
    private String principalUserId;

    /**
     * 负责人
     */
    @Excel(name = "负责人")
    @TableField("principal_user")
    private String principalUser;

    /**
     * 联系方式
     */
    @Excel(name = "联系方式")
    @TableField("contact_details")
    private String contactDetails;

    /**
     * 包装日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "包装日期", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField("pack_date")
    private LocalDateTime packDate;

    /**
     * 包装图片
     */
    @Excel(name = "包装图片")
    @TableField(value = "pack_img", typeHandler = FastjsonTypeHandler.class)
    private JSONArray packImg;

    /**
     * 单位名称
     */
    @Excel(name = "单位名称")
    @TableField("unit_name")
    private String unitName;

    /**
     * 数量
     */
    @Excel(name = "数量")
    @TableField("num")
    private BigDecimal num;

    /**
     * 规格
     */
    @Excel(name = "规格")
    @TableField("specs")
    private String specs;

    /**
     * 产地
     */
    @Excel(name = "产地")
    @TableField("product_area")
    private String productArea;

    /**
     * 采收日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "采收日期", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField("harvest_date")
    private LocalDateTime harvestDate;

    /**
     * 企业名称
     */
    @Excel(name = "企业名称")
    @TableField("business_name")
    private String businessName;

    /**
     * 保质期
     */
    @Excel(name = "保质期")
    @TableField("quality_date")
    private String qualityDate;

    /**
     * 追溯标志
     */
    @Excel(name = "追溯标志")
    @TableField("traceability_mark")
    private String traceabilityMark;

    /**
     * 状态（1启用、2停用）
     */
    @Excel(name = "状态", readConverterExp = "1=启用、2停用")
    @TableField("status")
    private String status;

    /**
     * 所属基地id
     */
    @Excel(name = "种植记录id")
    @TableField("plant_id")
    private String plantId;

    /**
     * 审核人
     */
    @TableField(value = "checker")
    private String checker;

    /**
     * 审核人
     */
    @TableField(value = "check_code")
    private String checkCode;

    public String getChecker() {
        return checker;
    }

    public void setChecker(String checker) {
        this.checker = checker;
    }

    public String getCheckCode() {
        return checkCode;
    }

    public void setCheckCode(String checkCode) {
        this.checkCode = checkCode;
    }

    public String getPlantId() {
        return plantId;
    }

    public void setPlantId(String plantId) {
        this.plantId = plantId;
    }

    public String getPrincipalUserId() {
        return principalUserId;
    }

    public void setPrincipalUserId(String principalUserId) {
        this.principalUserId = principalUserId;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getCode() {
        return code;
    }

    public void setAreaId(Long baseId) {
        this.areaId = baseId;
    }

    public Long getAreaId() {
        return areaId;
    }

    public void setBatchId(Long batchId) {
        this.batchId = batchId;
    }

    public Long getBatchId() {
        return batchId;
    }

    public void setAreaName(String areaName) {
        this.areaName = areaName;
    }

    public String getAreaName() {
        return areaName;
    }

    public void setBatchName(String batchName) {
        this.batchName = batchName;
    }

    public String getBatchName() {
        return batchName;
    }

    public void setProductionId(Long productionId) {
        this.productionId = productionId;
    }

    public Long getProductionId() {
        return productionId;
    }

    public void setProductionName(String productionName) {
        this.productionName = productionName;
    }

    public String getProductionName() {
        return productionName;
    }

    public void setPrincipalUser(String principalUser) {
        this.principalUser = principalUser;
    }

    public String getPrincipalUser() {
        return principalUser;
    }

    public void setContactDetails(String contactDetails) {
        this.contactDetails = contactDetails;
    }

    public String getContactDetails() {
        return contactDetails;
    }

    public void setPackDate(LocalDateTime packDate) {
        this.packDate = packDate;
    }

    public LocalDateTime getPackDate() {
        return packDate;
    }

    public JSONArray getPackImg() {
        return packImg;
    }

    public void setPackImg(JSONArray packImg) {
        this.packImg = packImg;
    }

    public void setUnitName(String unitName) {
        this.unitName = unitName;
    }

    public String getUnitName() {
        return unitName;
    }

    public void setNum(BigDecimal num) {
        this.num = num;
    }

    public BigDecimal getNum() {
        return num;
    }

    public void setSpecs(String specs) {
        this.specs = specs;
    }

    public String getSpecs() {
        return specs;
    }

    public void setProductArea(String productArea) {
        this.productArea = productArea;
    }

    public String getProductArea() {
        return productArea;
    }

    public void setHarvestDate(LocalDateTime harvestDate) {
        this.harvestDate = harvestDate;
    }

    public LocalDateTime getHarvestDate() {
        return harvestDate;
    }

    public void setBusinessName(String businessName) {
        this.businessName = businessName;
    }

    public String getBusinessName() {
        return businessName;
    }

    public void setQualityDate(String qualityDate) {
        this.qualityDate = qualityDate;
    }

    public String getQualityDate() {
        return qualityDate;
    }

    public void setTraceabilityMark(String traceabilityMark) {
        this.traceabilityMark = traceabilityMark;
    }

    public String getTraceabilityMark() {
        return traceabilityMark;
    }

    @Override
    public void setStatus(String status) {
        this.status = status;
    }

    @Override
    public String getStatus() {
        return status;
    }

}
